/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.apli.haiam.ejb.entidades;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Informática
 */
@Entity
@Table(name = "adm_institucion")
@NamedQueries({
    @NamedQuery(name = "AdmInstitucion.findAll", query = "SELECT a FROM AdmInstitucion a")})
public class AdmInstitucion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_institucion")
    private Integer idInstitucion;
    @Basic(optional = false)
    @Column(name = "nombre")
    private String nombre;
    @Basic(optional = false)
    @Column(name = "codigo_ui")
    private String codigoUi;
    @Column(name = "direccion")
    private String direccion;
    @Column(name = "telefono")
    private String telefono;
    @Column(name = "email")
    private String email;
    @Column(name = "responsable")
    private String responsable;
    @Basic(optional = false)
    @Column(name = "porcentaje_turnos")
    private int porcentajeTurnos;
    @JoinColumn(name = "id_institucion_sistema", referencedColumnName = "id_institucion_sistema")
    @ManyToOne(fetch = FetchType.LAZY)
    private AdmInstitucionSistema admInstitucionSistema;
    @JoinColumn(name = "id_division", referencedColumnName = "id_division")
    @ManyToOne(fetch = FetchType.LAZY)
    private AdmDivisionPolitica admDivisionPolitica;
    @OneToMany(mappedBy = "admInstitucion", fetch = FetchType.LAZY)
    private List<AdmEmpleado> admEmpleadoList;
    @OneToMany(mappedBy = "admInstitucion", fetch = FetchType.LAZY)
    private List<AdmMedico> admMedicoList;

    public AdmInstitucion() {
    }

    public AdmInstitucion(Integer idInstitucion) {
        this.idInstitucion = idInstitucion;
    }

    public AdmInstitucion(Integer idInstitucion, String nombre, String codigoUi, int porcentajeTurnos) {
        this.idInstitucion = idInstitucion;
        this.nombre = nombre;
        this.codigoUi = codigoUi;
        this.porcentajeTurnos = porcentajeTurnos;
    }

    public Integer getIdInstitucion() {
        return idInstitucion;
    }

    public void setIdInstitucion(Integer idInstitucion) {
        this.idInstitucion = idInstitucion;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getCodigoUi() {
        return codigoUi;
    }

    public void setCodigoUi(String codigoUi) {
        this.codigoUi = codigoUi;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getResponsable() {
        return responsable;
    }

    public void setResponsable(String responsable) {
        this.responsable = responsable;
    }

    public int getPorcentajeTurnos() {
        return porcentajeTurnos;
    }

    public void setPorcentajeTurnos(int porcentajeTurnos) {
        this.porcentajeTurnos = porcentajeTurnos;
    }

    public AdmInstitucionSistema getAdmInstitucionSistema() {
        return admInstitucionSistema;
    }

    public void setAdmInstitucionSistema(AdmInstitucionSistema admInstitucionSistema) {
        this.admInstitucionSistema = admInstitucionSistema;
    }

    public AdmDivisionPolitica getAdmDivisionPolitica() {
        return admDivisionPolitica;
    }

    public void setAdmDivisionPolitica(AdmDivisionPolitica admDivisionPolitica) {
        this.admDivisionPolitica = admDivisionPolitica;
    }

    public List<AdmEmpleado> getAdmEmpleadoList() {
        return admEmpleadoList;
    }

    public void setAdmEmpleadoList(List<AdmEmpleado> admEmpleadoList) {
        this.admEmpleadoList = admEmpleadoList;
    }

    public List<AdmMedico> getAdmMedicoList() {
        return admMedicoList;
    }

    public void setAdmMedicoList(List<AdmMedico> admMedicoList) {
        this.admMedicoList = admMedicoList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idInstitucion != null ? idInstitucion.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof AdmInstitucion)) {
            return false;
        }
        AdmInstitucion other = (AdmInstitucion) object;
        if ((this.idInstitucion == null && other.idInstitucion != null) || (this.idInstitucion != null && !this.idInstitucion.equals(other.idInstitucion))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "newpackage.AdmInstitucion[ idInstitucion=" + idInstitucion + " ]";
    }
    
}
